/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package net.easoftware.code.beans.jpa;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author waumovil-javaengineer
 */
@Entity
@Table(name = "perfil_seguridad_acceso")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "PerfilSeguridadAcceso.findAll", query = "SELECT p FROM PerfilSeguridadAcceso p"),
    @NamedQuery(name = "PerfilSeguridadAcceso.findById", query = "SELECT p FROM PerfilSeguridadAcceso p WHERE p.id = :id"),
    @NamedQuery(name = "PerfilSeguridadAcceso.findByModificar", query = "SELECT p FROM PerfilSeguridadAcceso p WHERE p.modificar = :modificar"),
    @NamedQuery(name = "PerfilSeguridadAcceso.findByEliminar", query = "SELECT p FROM PerfilSeguridadAcceso p WHERE p.eliminar = :eliminar"),
    @NamedQuery(name = "PerfilSeguridadAcceso.findByCrear", query = "SELECT p FROM PerfilSeguridadAcceso p WHERE p.crear = :crear"),
    @NamedQuery(name = "PerfilSeguridadAcceso.findByAcceso", query = "SELECT p FROM PerfilSeguridadAcceso p WHERE p.acceso = :acceso"),
    @NamedQuery(name = "PerfilSeguridadAcceso.findByFlag1", query = "SELECT p FROM PerfilSeguridadAcceso p WHERE p.flag1 = :flag1"),
    @NamedQuery(name = "PerfilSeguridadAcceso.findByFlag2", query = "SELECT p FROM PerfilSeguridadAcceso p WHERE p.flag2 = :flag2"),
    @NamedQuery(name = "PerfilSeguridadAcceso.findByFlag3", query = "SELECT p FROM PerfilSeguridadAcceso p WHERE p.flag3 = :flag3")})
public class PerfilSeguridadAcceso implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "id")
    private Integer id;
    @Basic(optional = false)
    @NotNull
    @Column(name = "modificar")
    private int modificar;
    @Basic(optional = false)
    @NotNull
    @Column(name = "eliminar")
    private int eliminar;
    @Basic(optional = false)
    @NotNull
    @Column(name = "crear")
    private int crear;
    @Basic(optional = false)
    @NotNull
    @Column(name = "acceso")
    private int acceso;
    @Column(name = "flag1")
    private Integer flag1;
    @Column(name = "flag2")
    private Integer flag2;
    @Column(name = "flag3")
    private Integer flag3;
    @JoinColumn(name = "modulo_aplicacion", referencedColumnName = "id")
    @ManyToOne(optional = false)
    private ModuloAplicacion moduloAplicacion;
    @JoinColumn(name = "perfil_seguridad", referencedColumnName = "id")
    @ManyToOne(optional = false)
    private PerfilSeguridad perfilSeguridad;

    public PerfilSeguridadAcceso() {
    }

    public PerfilSeguridadAcceso(Integer id) {
        this.id = id;
    }

    public PerfilSeguridadAcceso(Integer id, int modificar, int eliminar, int crear, int acceso) {
        this.id = id;
        this.modificar = modificar;
        this.eliminar = eliminar;
        this.crear = crear;
        this.acceso = acceso;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public int getModificar() {
        return modificar;
    }

    public void setModificar(int modificar) {
        this.modificar = modificar;
    }

    public int getEliminar() {
        return eliminar;
    }

    public void setEliminar(int eliminar) {
        this.eliminar = eliminar;
    }

    public int getCrear() {
        return crear;
    }

    public void setCrear(int crear) {
        this.crear = crear;
    }

    public int getAcceso() {
        return acceso;
    }

    public void setAcceso(int acceso) {
        this.acceso = acceso;
    }

    public Integer getFlag1() {
        return flag1;
    }

    public void setFlag1(Integer flag1) {
        this.flag1 = flag1;
    }

    public Integer getFlag2() {
        return flag2;
    }

    public void setFlag2(Integer flag2) {
        this.flag2 = flag2;
    }

    public Integer getFlag3() {
        return flag3;
    }

    public void setFlag3(Integer flag3) {
        this.flag3 = flag3;
    }

    public ModuloAplicacion getModuloAplicacion() {
        return moduloAplicacion;
    }

    public void setModuloAplicacion(ModuloAplicacion moduloAplicacion) {
        this.moduloAplicacion = moduloAplicacion;
    }

    public PerfilSeguridad getPerfilSeguridad() {
        return perfilSeguridad;
    }

    public void setPerfilSeguridad(PerfilSeguridad perfilSeguridad) {
        this.perfilSeguridad = perfilSeguridad;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += ( id != null ? id.hashCode() : 0 );
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!( object instanceof PerfilSeguridadAcceso )) {
            return false;
        }
        PerfilSeguridadAcceso other = (PerfilSeguridadAcceso) object;
        if (( this.id == null && other.id != null ) || ( this.id != null && !this.id.equals(other.id) )) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "net.easoftware.code.beans.jpa.PerfilSeguridadAcceso[ id=" + id + " ]";
    }
}
